home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1996 #15
/
Monster Media Number 15 (Monster Media)(July 1996).ISO
/
renegade
/
cdrm102.zip
/
CDRMAIL.DOC
next >
Wrap
Text File
|
1996-05-28
|
27KB
|
646 lines
CDRMAIL version 1.02
by
Charles D. Gaefke
Disclaimer
----------
The author of CDRMAIL is not responsible for any damaged, corrupted, lost,
or otherwise harmful occurrences which may occur from the use or inability
to use this program. This program has been tested and retested, and
debugged, by myself and others. To the best of my knowledge, CDRMAIL has
no bugs, and will not cause any corrupted or lost data on a properly
configured BBS. To the best of my knowledge, it will not do anything more
than what is documented herein. However, I guarantee NOTHING, except that
this program will take up hard drive space.
WARRANTY
--------
NO WARRANTY IS GIVEN, EITHER EXPRESSED OR IMPLIED, AS TO THE FUNCTIONALITY
OF THIS SOFTWARE PROGRAM. BY USING THIS SOFTWARE, YOU ARE AGREEING NOT TO
HOLD THE AUTHOR, CHARLES D. GAEFKE, RESPONSIBLE FOR ANY DAMAGES EITHER
CONSEQUENTIAL OR INCIDENTAL, WHICH ARISE FROM YOUR ABILITY TO USE OR MISUSE
THIS SOFTWARE PROGRAM. YOU ARE FURTHER AGREEING, WITH YOUR USE OF THIS
SOFTWARE PROGRAM, THAT YOU HAVE READ THIS ENTIRE DOCUMENT AND ARE FAMILIAR
WITH ITS TERMS AND AGREE TO EXEMPT CHARLES D. GAEFKE FROM ANY AND ALL
RESPONSIBILITIES IN THE EVENT OF ANY DAMAGES TO YOUR SYSTEM WHICH ARE
CAUSED EITHER THROUGH DIRECT OR INDIRECT USE OF THIS SOFTWARE PROGRAM.
Shareware Concept/Grant of License
----------------------------------
CDRMAIL is a fully-functional (non-crippled) Shareware utility. You are
granted a license to use and CDRMAIL for as long as you wish. If you use
CDRMAIL as your echomail processor, I request that you register it.
Registration is only $15. Please see below for the registration form. I
do _NOT_ require registration. If you do not want to register it, or you
can not afford it, that is fine. I also take trades (make an offer!) or
just plain donations.
Distribution
------------
Feel free to distribute CDRMAIL among your sysop friends. However, I do
ask that do so only in unmodified format, in the distribution CDRM102.ZIP
archive, that contains the following files:
CDRMAIL.EXE
CDRMAIL.DOC
FILE_ID.DIZ
WHATSNEW.TXT
Description
-----------
CDRMAIL is a Renegade echomail processor. It converts .MSG files (created
by your echomail tosser) to the Renegade message bases, and visa versa, in
a very efficient manner, causing it to process mail EXTREMELY fast.
Features
--------
- Imports and optional purging of echomail in one pass.
- Smart exporting of echomail.
- Full netmail support.
- Creates summary of echomail activity on each run.
- Handles ANSI very well.
- Optional logging of all activities to a log file of your specification.
- Max size of 64,000 byte message size for importing/exporting.
- Optional tossing of 1.MSG.
- Optional absolute scan for exporting of echomail.
- Supports multiple configurations via command line and optional
environmental variables.
Requirements
------------
CDRMAIL requires Renegade version 10-05-94, 04-05-96 or 05-11-96 (see
miscellaneous information). Because CDRMAIL runs in conjunction with an
echomail processor, such as GEcho, knowledge of configuring and running
that echomail processor is also required. And, since BBS's are run by
batch files, batch file knowledge is required as well.
As for hardware requirements, CDRMAIL requires adequate hard drive space
for the converted messages. The volume of messages you process will
determine how much hard drive space you need. CDRMAIL requires a 80386
processor, or better, to run. Memory requirements are minimal (less than
200k). If you run it in the same sequence you run your echomail
tosser/scanner, CDRMAIL should have plenty of memory to work with.
CDRMAIL has been tested and it runs properly under DOS/DESQVIEW and OS/2
Warp. There may be problems under Windows 95. I was unable to fully test
it, so I can not guarantee it will work correctly. If you do run Windows
95, and you do have problems, please let me know, and I will do my best
to fix them ASAP.
Usage
-----
I think you will find CDRMAIL extremely easy to use. I have provided below
several examples of how to use CDRMAIL. Note that my examples use GEcho for
an echomail processor, and that I assume that you have installed GEcho in
\GECHO and Renegade in \RENEGADE. If using a different configuration of
hard drive subdirectories and/or echomail processing software, please
refer to the documentation that accompanied that echomail processor for
information regarding its configuration and for tossing/scanning echomail.
- For importing echomail:
CDRMAIL runs after you run your echomail processor. This example will
import all tossed messages, and purge them when done:
:mail_in
rem Tossing messages with echomail processor.
cd \gecho
gecho toss
rem Importing messages for Renegade.
cd \renegade
cdrmail -t -d
- For exporting echomail:
CDRMAIL runs before you run your echomail processor. Example:
:mail_out
cd \renegade
rem Exporting messages for processing by echomail processor.
cdrmail -s
rem Running echomail processor.
cd \gecho
gecho scan
rem Deleting previously exported messages.
cd \renegade
cdrmail -d
Parameters
----------
Commands:
-T Toss inbound messages
-S Scan outbound messages
Options:
-D Delete .MSG files
-N No netmail
-O Only netmail
-Pxxx Sets point threshold(def=256)
-1 Starts at 1.MSG
-A Absolute scan
-B Use BIOS output
-L Logging enabled
-X Xtended logging enabled
-V Display version number
Parameter Description
---------------------
-T (Toss Inbound Messages)
Imports any inbound messages, including any inbound netmail unless
otherwise specified with "-N".
-S (Scan Outbound Messages)
Processes any outbound echomail messages, including netmail unless
otherwise specified with "-N".
-D (Delete .MSG Files)
Causes CDRMAIL to purge all message files (*.MSG) found in your
echomail paths. If used with -T, CDRMAIL will purge them IMMEDIATELY
after importing them.
Please note that after exporting mail, with -S, and running your
echomail processor, I recommend you running CDRMAIL -D to remove the
exported messages.
-N (No Netmail)
Causes CDRMAIL -not- to process netmail when importing or exporting.
Can not be used with "-O".
-O (Only Netmail)
Causes CDRMAIL to -only- process netmail when importing or exporting.
Can not be used with "-N".
-Pxxx (Point Threshold)
According to certain standards (Fidonet), the point field of the
address is not required to be specified when creating netmail. Because
of this, Netmail sometimes has a "garbage" point address on it. CDRMAIl
compensates for this by checking the point address. If it is larger than
256, it assumes it is meaningless, and sets it to 0. If, for whatever
reason, you want to change the threshold (default is 256), that is what
this parameter is for. Most systems will not need this parameter.
-1 (Import 1.MSG)
When importing echomail, CDRMAIL will look for 1.MSG, and if found,
will import it. This is an option because 1.MSG is usually used for what
is called a high message pointer for echomail tossers. Use at your
discretion.
-A (Absolute Scan)
By default, CDRMAIL does "smart" exporting. That is, Renegade leaves a
"trace" for echomail processors so they know which bases contain messages
to be exported. By default, CDRMAIL scans for this "trace" and processes
an echomail base only if that "trace" is found. With the "-A" parameter, the
trace is not searched for; CDRMAIL will scan every message of every base
looking for unsent messages.
Note that if a message gets corrupted before exporting, the "trace" is
usually not activated, and will not be exported. Using absolute scan will
create garbled messages (that your moderator will love, I am sure) if
corrupted messages exist. Use at your own discretion.
-B (BIOS Video Output)
By default, CDRMAIL performs direct screen writes. Some operating
systems/display cards prefer that programs use BIOS routines for screen
writing so that they can control it more. Use this option if you get screen
"bleeding" from one window to another (such as in DESQview) or "snow" (on CGA
graphics cards), or if your graphics card is not 100% IBM compatible and
seems to be displaying CDRMAIL's reports incorrectly (garbled text, etc.).
If you have a need for this parameter, you know why it is here already :)
If you have never heard the term "BIOS Video Output" before, then do not
worry about this parameter. "-B" is for cosmetic function -only- and does
not affect the processing of mail in any way.
-L (Logging Enabled)
By default, CDRMAIL does not do any logging functions. If you want it
to log, use the -L command.
-X (Xtended Logging)
By default, if logging is specified, CDRMAIL records only the time it
was run, the parameters used, and summary of processing. If detailed
logging is specified, CDRMAIL records all default logging information plus
activity/actions for each base. For systems that handle a large amount of
mail, this can take up a significant amount of hard drive space and slow
system performance rather quickly, hence its optional status. The
parameter -L is not necessary if -X is used.
You may wish to use -X during your initial tests of CDRMAIL from the
command line to learn exactly what CDRMAIL is doing with your mail and to
verify its correctness and efficiency. Then please remove its use for
day-to-day operation with your system to really see CDRMAIL in action!
-V (Display version)
I added this just so you know exactly what version of CDRMAIL you are
using. Generally, CDRMAIL has the same version as the most recent version
of Renegade. Unfortunately, though, there may be more than one version of
CDRMAIL released for one version of Renegade (for example, version 1.01 and
1.02 are both for 05-11-96). So, if you want to know what version of
CDRMAIL you have, run CDRMAIL -V. :)
Logging
-------
By default (if logging is enabled), CDRMAIL writes to a log file called
CDRMAIL.LOG in the LOGS path specified in your Renegade configuration. You
can override this default behavior by using the environment variable
CDRMAIL. To do this, use the DOS command SET, as follows:
SET CDRMAIL=d:\path\filename.ext
where "d:" is the drive letter, "path" is the pathname, and "filename.ext" is
the name of the file into which you want CDRMAIL to write its statements.
For example, in your AUTOEXEC.BAT, put:
SET CDRMAIL=c:\logs\cdrmail.log
Then, every time CDRMAIL is run, the file C:\LOGS\CDRMAIL.LOG will be
appended with new log information.
Note that you can use any valid DOS path and filename you desire - but the
path, if specified, MUST exist. Otherwise CDRMAIL will exit with an error
and -will not- process your mail!
Speed
-----
On my system, CDRMAIL _FLIES_. With 2 nodes running in the background,
plus whatever else I may be doing, I typically get 30+ messages tossed a
SECOND. My system is a Pentium 90 with 16 megs of RAM, and I run OS/2
Warp. If your messages/sec is much slower than mine, and you have a system
comparable to mine, there may be an internal problem with CDRMAIL, or you
could do some optimizing of your system.
All mail tossers, CDRMAIL included, LOVE a disk cache. A disk
cache helps IMMENSELY when tossing mail - especially a write-behind disk
cache. For DOS, Smartdrv (in your DOS directory) or HyperDisk (by
HyperWare) are excellent disk caches. For OS/2, mail tossing works best on
a HPFS drive with a fairly large CACHE specified (I have a 2 meg cache).
Please see your manuals for installation of this software.
BE FOREWARNED - A write behind (lazy-write) cache is not for everyone.
There are hazards to a write behind cache. They function by storing
recently written data to memory, and it is eventually written to disk.
If your system is unstable - or if you have frequent power outages
(without a UPS), I do not recommend using a write-behind cache.
!!!USE THEM AT YOUR OWN RISK!!!
If you decide not to use a write-behind disk cache, a "normal" cache will
help immensely as well.
Time Estimation
---------------
CDRMAIL calculates the local time from the DOS environment variable TZ.
Most BBS's should have this variable set already, since several popular
programs make use of it. If you do not currently use TZ, and are not located
in the eastern time zone (see note #2), the TZ environment variable is not
very difficult to add.
The TZ variable is in the following format:
xxxNyyy
Where xxx is your time zone (ex: EST), N is the time zone difference between
your zone and Greenwich, and yyy is the your time zone initials if/when you
observe Daylight Savings time. The yyy is not necessary - if it is omitted,
it simply means you do not observe Daylight Savings time and the time
will not be adjusted.
Set the variable in your AUTOEXEC.BAT, by adding:
SET TZ=xxxNyyy
substituting xxxNyyy with your settings, of course. For example, in my
AUTOEXEC.BAT, I have:
SET TZ=EST5EDT
Note 1: If you are unsure what amount of time zone difference there is
between your location and Greenwich, consider that the setting for Eastern
Standard Time is EST5EDT. If you live in California, you are three hours
behind EST, so you would use PST8PDT.
Note 2: If TZ is not present, CDRMAIL assumes TZ=EST5EDT.
Error levels
------------
CDRMAIL does support DOS error levels. They are listed in the following
table:
ERROR LEVEL Meaning
=============================================================================
0 Normal Completion - No errors encountered.
3 Insufficient memory to process mail. Mail was NOT processed.
5 File not found. A file CDRMAIL was searching for could not
be found. Some mail processing may have occurred before
this error. This could be a user problem or an internal
problem with CDRMAIL.
10 User Break (Ctrl-Break). The user has terminated CDRMAIL.
Some mail may have been processed before the user break.
Since every process in CDRMAIL is logged, if you check your log file you will
see exactly what when wrong and when. I implemented the error levels just for
those who may want them/are able to handle them in BATCH files :)
Note that unlike Renemail, there is no error-level if CDRMAIL "chokes" on a
message because CDRMAIL does not choke on messages. Nor does CDRMAIL "hang"
either. (If it does either, there is an internal problem with CDRMAIL.)
There is no easy for CDRMAIL to determine if a message is really garbled
or not. So any garbled messages will be imported, as they are.
Registration
------------
CDRMAIL is Shareware. Not the -normal- Shareware, because I do _NOT_
require registration. If you want to register CDRMAIL, I will be more than
happy to accept it.
However, until CDRMAIL is registered, it will display "UNREGISTERED" in a
couple of places, and a seven second delay will occur upon successful
completion of CDRMAIL.
Registration of CDRMAIL costs only US$15.00. Considering the amount of time
I have put into CDRMAIL, and how useful and efficient it is, I consider this
to be a small price to pay for the performance gained. Upon registration:
1) You will receive a registration key;
2) You will be supporting the shareware concept;
3) You will be encouraging me to write more utilities; and
4) All unregistered "features" will be removed.
To register, please print this form and mail it with your check or money
order to:
CHARLES D. GAEFKE
128 PLUM RUN ROAD
CANONSBURG, PA 15317
I will process your order for CDRMAIL upon receipt, and will deliver it
immediately using the method you have specified.
International orders welcomed! All personal checks, however, must be drawn
in US funds on a US bank. Canadian residents may obtain a money order in US
funds at their local bank or post office. Other countries please inquire at
your local bank or postal office about an International Money Order (IMO).
(cut here)
---------------------------------------------------------------------------
Registration form for CDRMAIL version 1.02.
Your REAL name:
Address #1:
Address #2:
City, State, Zip:
Country:
I can send you your registration key two ways:
1) I can crash it to you via Netmail if you have an address that I have a
nodelist for.
2) I can call your BBS and upload it (leave data phone #).
Preference:
These are not required, but I would appreciate you filling them out so I
know exactly what types of systems CDRMAIL is running on.
Hardware
CPU: RAM:
Why are you registering CDRMAIL?
Enclosed is $____.
[ ] Check [ ] Money Order [ ] International Money Order (IMO)
By signing below, I agree that by registering this program, I am in no way
purchasing and am in no way granted partial ownership or rights to CDRMAIL.
I am paying for a non-transferable license to use CDRMAIL on my system
indefinitely and to support the author and the shareware marketing concept.
In return for my payment, however, I expect to receive a registration key
which will disable any unregistered "features" of CDRMAIL.
Signature: ______________________________ Date: __/__/__
Please make check or money order payable to Charles D. Gaefke.
---------------------------------------------------------------------------
Bug Reports
-----------
At the present time, there are no known bugs with CDRMAIL. Hopefully there
will not be any more. :)
In the event that a bug is found, however, please let me know! For me to
fix it, I will require as much information as you can give me. So, when
contacting me about a bug, please include:
Your operating system and version;
Version of Renegade you were using when the bug occurred;
Command line parameters used when the bug occurred;
Can you make CDRMAIL do this again? If so, how?
If at all possible, the message(s) that caused the problem would help
IMMENSELY.
Any other information/comments you think will be helpful to me. Basically,
give me a short text description of what happened.
How It Works
------------
Special notes on how CDRMAIL functions, for those who may be curious, and
are familiar with how Renegade works:
Q. How does CDRMAIL distinguish what Netmail messages to import?
A: First it checks the origin address of the netmail message to see if it
is from one of your AKA (specified in your Renegade setup). If no match is
found, it checks the destination address for a match against your AKA's.
If one is found, CDRMAIL checks the destination name against your user
database. If a match is found, it is imported for that user. If not, it
is still imported, but for user #1.
Q. What is the HI_WATER.MRK file in all of my echomail directories?
A. CDRMAIL uses the HI_WATER.MRK file to keep track of what messages have
been imported (so that it does not import them again). The HI_WATER.MRK
file contains two things - the number of the last message imported, and the
date/time stamp of that message.
Q. How does CDRMAIL import messages?
A: First CDRMAIL checks for a match to the filespec (*.MSG) for the area.
If a match is found, CDRMAIL checks the HI_WATER.MRK file (see above),
reading the number of the last message imported, and the date/time stamp of
it. CDRMAIL then checks to see if that message exists and IF it has the
same date/time stamp as the HI_WATER.MRK indicates. If a match is made,
CDRMAIL starts importing at the next message (if it exists). If there is
no match, CDRMAIL starts importing at 2.MSG (1.MSG if -1 is used; if -1 is
used and 1.MSG is not found, it goes to 2.MSG). *IF* 1.MSG or 2.MSG is not
the first message, THERE WILL BE AN ERROR! Mail tossers toss from 1.MSG or
2.MSG on - therefore if *.MSG is found, CDRMAIL assumes the first message
is 2.MSG (or 1.MSG). CDRMAIL keeps importing, as long as the next message
exists. That means if you 2.MSG, 3.MSG, and 5.MSG in your directory,
CDRMAIL will import #2, #3, see that #4 does not exist, stop there.
The ONLY exception to this is when CDRMAIL processes Netmail. When CDRMAIL
processes Netmail, it reads the numbers of all the messages (since they can
vary in number), and sorts them out. CDRMAIL then processes them one at a
time, in the order then exist. Note that if, by chance, one of the netmail
messages is deleted (such as on a multi-node system that just sent/received
a mail call) before CDRMAIL processes it, and after CDRMAIL acknowledges it
is there, CDRMAIL will give an error, and abort. However next time CDRMAIL
runs, things will proceed as normal with no data lost.
Q. How does CDRMAIL purge messages?
A. If -D (purging) is used with -T, CDRMAIL purges *ONLY* if messages are
imported. If not, CDRMAIL does not check to see if there are messages to
be purged. If -D is used by itself, CDRMAIL deletes any match it finds to
the *.MSG specification, one at a time (unfortunately I have found no way
to purge them all at once, such as "DEL *.MSG"), as it finds them.
Q. How does CDRMAIL export message?
A. This is relatively self-explanatory, but I have included it because I
have the other 3 main functions in here. :) Unless the -A is used, CDRMAIL
checks each base for the "marker" indicating it has messages that are not
sent. When it finds one, it searches through all the messages until it
finds one that is unsent (and validated), and exports it to the next .MSG
number. That is, if you have 2.MSG-100.MSG in your directory when CDRMAIL
exports, CDRMAIL will start exporting as 101.MSG, then 102.MSG, etc. If
the -A parameter is used, CDRMAIL checks every base for any message that
has not been sent (and is validated).
Q. What is the CDRMAIL.DAT I have in my Renegade directory?
A. The CDRMAIL.DAT contains all the data CDRMAIL needs from your message
base info (MBASES.DAT). If you will compare the size of the two, you will
see there isn't much from the MBASES.DAT that CDRMAIL needs. With this in
mind, CDRMAIL can run faster because it doesn't have access everything in
the MBASES.DAT (whether it read the whole thing into memory or if it
"jumps" through it finding what it needs). In the CDRMAIL.DAT is a
date/time stamp of the MBASES.DAT when CDRMAIL was last executed. When
CDRMAIL runs, it compares that date/time stamp to the one on the
MBASES.DAT. If it is different, CDRMAIL assumes the MBASES.DAT has been
changed, and a new CDRMAIL.DAT is created with a new date/time stamp
reflecting the new MBASES.DAT in it.
Miscellaneous Information
-------------------------
This is the third 'official' release of a program for me. My first was
GEMC, a program to keep a daily record of imported messages from GEcho.
The second was RGNSHOW, a program to reflect the status of other nodes from
the command line. There are more programs in the making, and still more
ideas I have not started yet.
In case anyone is wondering, CDRMAIL stands for CD's Renegade MAIL
processor.
I am in no way affiliated with any group or company. I author alone.
CDRMAIL was compiled with Borland C++ v 3.1 creating Intel 80386 code. That
is, CDRMAIL requires a 386 or better microprocessor to run. I figure there
should not be anyone using anything older than a 386 anymore. If so, my
apologies - please upgrade.
Source code (approx 1600 lines amounting to 39k) is NOT available for sale
or study.
CDRMAIL is coded based on the Renegade 04-05-96 structures (100% compatible
with 05-11-96). However, because Cott surprised us all with a new version
of Renegade shortly before version 1.00 of CDRMAIL was completed, this mail
processor is backwards compatible with 10-05-94.
Future updates to CDRMAIL will, most likely, no longer support 10-05-94.
Provided no major changes are made to the format of Renegade's structures,
CDRMAIL should work for any version from 10-05-94 on. I can not, however,
guarantee anything that CDRMAIL will work on anything other than 10-05-94,
04-05-96, and 05-11-96.
If a release is made with modified structures, I will update CDRMAIL as soon
as I get the structures for the upgraded Renegade.
The latest version of CDRMAIL can always be FREQed as 'CDRMAIL' from
50:530/1 or 1:129/230, my BBS, Cott Lang's BBS, and hopefully on
ftp.cc.umanitoba.ca. I plan on having a Web Page in the future that will
have CDRMAIL on it.
Credits
-------
My thanks to Borland for their IDE interface. Without it I would be lost.
Many thanks to Cott Lang for Renegade - the best BBS around.
Merci beaucoup to my girlfriend Tasha for listening to all my gripes and
complains when things did not go the way they should while programming.
Many thanks to my Beta testers, Robert Colbert (A.K.A. Linc) and Bill
Thoma. They found a lot of my bugs in the beta versions and offered advice
that helped the creation of CDRMAIL. Thanks guys!
Suggestions, Questions, and/or Comments
---------------------------------------
Questions, technical support and comments about CDRMAIL, or any of my
software, may be sent to me via netmail at 1:129/230@Fidonet.org or
50:530/1@RGSNet. I am also reachable in all of the RGSNet
echos. Or, if you prefer, you can snailmail me at
LOTL
c/o Charles Gaefke
128 Run Road
Canonsburg, PA 15317-9801.
-C. Gaefke